package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltElectricParametersReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltElectricParametersRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltElectricParameters;
import java.util.Objects;

/**
 * BeltElectricParameters DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public class BeltElectricParametersAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltElectricParameters dto2entity(BeltElectricParametersReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltElectricParameters entity = new BeltElectricParameters();
    entity.setBeltName(dto.getBeltName());
    entity.setBeltSpeed(dto.getBeltSpeed());
    entity.setAutoSignal(dto.getAutoSignal());
    entity.setRunSignal(dto.getRunSignal());
    entity.setFaultSignal(dto.getFaultSignal());
    entity.setFlowSignal(dto.getFlowSignal());
    entity.setMotorCurrent(dto.getMotorCurrent());
    entity.setMotorVoltage(dto.getMotorVoltage());
    entity.setPhaseAngle(dto.getPhaseAngle());
    entity.setLoadSignal(dto.getLoadSignal());
    entity.setMotorSpeed(dto.getMotorSpeed());
    entity.setInstantBeltScale(dto.getInstantBeltScale());
    entity.setTotalBeltScale(dto.getTotalBeltScale());
    entity.setMotorTemperature(dto.getMotorTemperature());
    entity.setMotorVibrationSignal(dto.getMotorVibrationSignal());
    entity.setMeterPowerConsumption(dto.getMeterPowerConsumption());
    entity.setSendTime(dto.getSendTime());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltElectricParameters dto2entity(BeltElectricParametersReqDTO dto, BeltElectricParameters entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getBeltName())) {
      entity.setBeltName(dto.getBeltName());
    }
    if(Objects.nonNull(dto.getBeltSpeed())) {
      entity.setBeltSpeed(dto.getBeltSpeed());
    }
    if(Objects.nonNull(dto.getAutoSignal())) {
      entity.setAutoSignal(dto.getAutoSignal());
    }
    if(Objects.nonNull(dto.getRunSignal())) {
      entity.setRunSignal(dto.getRunSignal());
    }
    if(Objects.nonNull(dto.getFaultSignal())) {
      entity.setFaultSignal(dto.getFaultSignal());
    }
    if(Objects.nonNull(dto.getFlowSignal())) {
      entity.setFlowSignal(dto.getFlowSignal());
    }
    if(Objects.nonNull(dto.getMotorCurrent())) {
      entity.setMotorCurrent(dto.getMotorCurrent());
    }
    if(Objects.nonNull(dto.getMotorVoltage())) {
      entity.setMotorVoltage(dto.getMotorVoltage());
    }
    if(Objects.nonNull(dto.getPhaseAngle())) {
      entity.setPhaseAngle(dto.getPhaseAngle());
    }
    if(Objects.nonNull(dto.getLoadSignal())) {
      entity.setLoadSignal(dto.getLoadSignal());
    }
    if(Objects.nonNull(dto.getMotorSpeed())) {
      entity.setMotorSpeed(dto.getMotorSpeed());
    }
    if(Objects.nonNull(dto.getInstantBeltScale())) {
      entity.setInstantBeltScale(dto.getInstantBeltScale());
    }
    if(Objects.nonNull(dto.getTotalBeltScale())) {
      entity.setTotalBeltScale(dto.getTotalBeltScale());
    }
    if(Objects.nonNull(dto.getMotorTemperature())) {
      entity.setMotorTemperature(dto.getMotorTemperature());
    }
    if(Objects.nonNull(dto.getMotorVibrationSignal())) {
      entity.setMotorVibrationSignal(dto.getMotorVibrationSignal());
    }
    if(Objects.nonNull(dto.getMeterPowerConsumption())) {
      entity.setMeterPowerConsumption(dto.getMeterPowerConsumption());
    }
    if(Objects.nonNull(dto.getSendTime())) {
      entity.setSendTime(dto.getSendTime());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltElectricParametersRespVO entity2dto(BeltElectricParameters entity) {
    if (entity == null) {
      return null;
    }
    BeltElectricParametersRespVO dto = new BeltElectricParametersRespVO();
    dto.setId(entity.getId());
    dto.setBeltName(entity.getBeltName());
    dto.setBeltSpeed(entity.getBeltSpeed());
    dto.setAutoSignal(entity.getAutoSignal());
    dto.setRunSignal(entity.getRunSignal());
    dto.setFaultSignal(entity.getFaultSignal());
    dto.setFlowSignal(entity.getFlowSignal());
    dto.setMotorCurrent(entity.getMotorCurrent());
    dto.setMotorVoltage(entity.getMotorVoltage());
    dto.setPhaseAngle(entity.getPhaseAngle());
    dto.setLoadSignal(entity.getLoadSignal());
    dto.setMotorSpeed(entity.getMotorSpeed());
    dto.setInstantBeltScale(entity.getInstantBeltScale());
    dto.setTotalBeltScale(entity.getTotalBeltScale());
    dto.setMotorTemperature(entity.getMotorTemperature());
    dto.setMotorVibrationSignal(entity.getMotorVibrationSignal());
    dto.setMeterPowerConsumption(entity.getMeterPowerConsumption());
    dto.setSendTime(entity.getSendTime());
    dto.setCreateTime(entity.getCreateTime());
    dto.setModifyTime(entity.getModifyTime());
    dto.setCreateUser(entity.getCreateUser());
    dto.setModifyUser(entity.getModifyUser());
    return dto;
  }

}
